package com.budwk.app.enterprise.models;

import com.budwk.starter.common.openapi.annotation.ApiModel;
import com.budwk.starter.common.openapi.annotation.ApiModelProperty;
import com.budwk.starter.database.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.io.Serializable;
import java.math.BigDecimal;


/**
 * @desc: 方法描述
 * @Author: laochiangx
 * @Date: 2024/3/8 14:35
 * @info:
 */

@Data
@EqualsAndHashCode(callSuper = false)
@Table("dfxy_enterprise.wx_qualification_certificate")
@Comment("资质证书信息")
@ApiModel(description = "资质证书信息实体")
public class QualificationCertificate extends BaseModel implements Serializable {
    private static final long serialVersionUID = 1L;

    @Column
    @Name
    @Comment("ID")
    @ApiModelProperty(description = "ID")
    @ColDefine(type = ColType.VARCHAR, width = 32)
    @PrevInsert(uu32 = true)
    private String id;

    // 决定书文号
    @Column("decide_book_number")
    @Comment("决定书文号")
    @ApiModelProperty(description = "决定书文号")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String decideBookNumber;

    // 许可文件名称
    @Column("name_license_document")
    @Comment("许可文件名称")
    @ApiModelProperty(description = "许可文件名称")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String nameLicenseDocument;

    // 有效期自
    @Column("valid_from")
    @Comment("有效期自")
    @ApiModelProperty(description = "有效期自")
    private Date validFrom;

    // 有效期至
    @Column("valid_until")
    @Comment("有效期至")
    @ApiModelProperty(description = "有效期至")
    private Date validUntil;

    // 许可机关
    @Column("licensing_authority")
    @Comment("许可机关")
    @ApiModelProperty(description = "许可机关")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String licensingAuthority;

    // 许可内容
    @Column("licensed_content")
    @Comment("许可内容")
    @ApiModelProperty(description = "许可内容")
    @ColDefine(type = ColType.TEXT)
    private String licensedContent;

    // 数据来源
    @Column("data_source")
    @Comment("数据来源")
    @ApiModelProperty(description = "数据来源")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String dataSource;

    // 证书编号
    @Column("certificate_number")
    @Comment("证书编号")
    @ApiModelProperty(description = "证书编号")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String certificateNumber;

    // 证书状态
    @Column("certificate_status")
    @Comment("证书状态")
    @ApiModelProperty(description = "证书状态")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String certificateStatus;

    // 颁证日期
    @Column("date_issuance")
    @Comment("颁证日期")
    @ApiModelProperty(description = "颁证日期")
    private Date dateIssuance;

    // 证书到期日期
    @Column("certificate_expiration_date")
    @Comment("证书到期日期")
    @ApiModelProperty(description = "证书到期日期")
    private Date certificateExpirationDate;

    // 初次获证日期
    @Column("date_initial_certification")
    @Comment("初次获证日期")
    @ApiModelProperty(description = "初次获证日期")
    private Date dateInitialCertification;

    // 信息上报日期
    @Column("date_information_reporting")
    @Comment("信息上报日期")
    @ApiModelProperty(description = "信息上报日期")
    private Date dateInformationReporting;

    // 认证项目
    @Column("certification_project")
    @Comment("认证项目")
    @ApiModelProperty(description = "认证项目")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String certificationProject;

    // 认证依据
    @Column("certification_basis")
    @Comment("认证依据")
    @ApiModelProperty(description = "认证依据")
    @ColDefine(type = ColType.TEXT)
    private String certificationBasis;

    // 监督次数
    @Column("number_supervision")
    @Comment("监督次数")
    @ApiModelProperty(description = "监督次数")
    private Integer numberSupervision;

    // 再认证次数
    @Column("number_recertifications")
    @Comment("再认证次数")
    @ApiModelProperty(description = "再认证次数")
    private Integer numberRecertifications;

    // 认证覆盖的业务范围
    @Column("business_scope_certification")
    @Comment("认证覆盖的业务范围")
    @ApiModelProperty(description = "认证覆盖的业务范围")
    @ColDefine(type = ColType.TEXT)
    private String businessScopeCertification;

    // 是否覆盖多场所
    @Column("multiple_places")
    @Comment("是否覆盖多场所")
    @ApiModelProperty(description = "是否覆盖多场所")
    private Boolean multiplePlaces;

    // 认证覆盖的场所名称及地址
    @Column("place_covered_certification")
    @Comment("认证覆盖的场所名称及地址")
    @ApiModelProperty(description = "认证覆盖的场所名称及地址")
    @ColDefine(type = ColType.TEXT)
    private String placeCoveredCertification;

    // 证书使用的认可标识
    @Column("recognition_mark_certificate")
    @Comment("证书使用的认可标识")
    @ApiModelProperty(description = "证书使用的认可标识")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String recognitionMarkCertificate;

    // 获证组织_组织名称
    @Column("certificated_organization")
    @Comment("获证组织_组织名称")
    @ApiModelProperty(description = "获证组织_组织名称")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String certificatedOrganization;

    // 获证组织_统一社会信用代码/组织机构代码
    @Column("licensed_organization_code")
    @Comment("获证组织_统一社会信用代码/组织机构代码")
    @ApiModelProperty(description = "获证组织_统一社会信用代码组织机构代码")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String licensedOrganizationCode;

    // 获证组织_所在国别地区
    @Column("organization_country_region")
    @Comment("获证组织_所在国别地区")
    @ApiModelProperty(description = "获证组织_所在国别地区")
    @ColDefine(type = ColType.VARCHAR, width = 100)
    private String organizationCountryRegion;

    // 获证组织_本证书体系覆盖人数
    @Column("certificated_organization_number")
    @Comment("获证组织_本证书体系覆盖人数")
    @ApiModelProperty(description = "获证组织_本证书体系覆盖人数")
    private Integer certificatedOrganizationNumber;

    // 获证组织_组织地址
    @Column("certificated_organization_address")
    @Comment("获证组织_组织地址")
    @ApiModelProperty(description = "获证组织_组织地址")
    @ColDefine(type = ColType.TEXT)
    private String certificatedOrganizationAddress;

    // 发证机构_机构名称
    @Column("issuing_agency_name")
    @Comment("发证机构_机构名称")
    @ApiModelProperty(description = "发证机构_机构名称")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String issuingAgencyName;

    // 发证机构_机构批准号
    @Column("issuing_agency_number")
    @Comment("发证机构_机构批准号")
    @ApiModelProperty(description = "发证机构_机构批准号")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String issuingAgencyNumber;

    // 发证机构_有效期
    @Column("issuing_validity_period")
    @Comment("发证机构_有效期")
    @ApiModelProperty(description = "发证机构_有效期")
    @ColDefine(type = ColType.VARCHAR, width = 100)
    private String issuingValidityPeriod;

    // 发证机构_机构状态
    @Column("issuing_agency_status")
    @Comment("发证机构_机构状态")
    @ApiModelProperty(description = "发证机构_机构状态")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String issuingAgencyStatus;

    // 发证机构_网址
    @Column("issuing_agency_website")
    @Comment("发证机构_网址")
    @ApiModelProperty(description = "发证机构_网址")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String issuingAgencyWebsite;

    // 发证机构_地址
    @Column("issuing_agency_address")
    @Comment("发证机构_地址")
    @ApiModelProperty(description = "发证机构_地址")
    @ColDefine(type = ColType.TEXT)
    private String issuingAgencyAddress;

    // 发证机构_业务范围
    @Column("issuing_business_scope")
    @Comment("发证机构_业务范围")
    @ApiModelProperty(description = "发证机构_业务范围")
    @ColDefine(type = ColType.TEXT)
    private String issuingBusinessScope;
}
